package com.lvtulife.paas.gtd.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.lvtulife.common.service.BaseServiceI;
import com.lvtulife.paas.gtd.entity.GtdStrategyTheme;

import java.io.Serializable;
import java.util.List;

/**
 * GtdStrategyTheme 表数据服务层接口
 */
public interface GtdStrategyThemeServiceI extends BaseServiceI<GtdStrategyTheme> {

    /**
     * 保存规划主题
     *
     * @return id 返回保存后的主键
     */
    Long saveTheme(String theme, Long userId);


    /**
     * 主题被使用
     * 主题热度+1
     *
     * @param id 主题主键
     */
    Boolean useTheme(Serializable id);

    /**
     * 查询热门主题
     *
     * @param size 数量
     * @return
     */
    List<GtdStrategyTheme> findHotTheme(int size);

    /**
     * 验证主题名称是否存在
     *
     * @param theme
     * @return
     */
    Boolean existTheme(String theme);

    /**
     * 获取主题名相应的主题信息
     *
     * @param theme
     * @return
     */
    GtdStrategyTheme findTheme(String theme);

    /**
     * 模糊查询相似的主题
     *
     * @param theme
     * @return
     */
    List<GtdStrategyTheme> findLikeTheme(String theme);

    /**
     * 分页查询所有主题
     *
     * @param query
     * @return
     */
    Page<GtdStrategyTheme> findThemes(Page<GtdStrategyTheme> query);

    /**
     * 分页查询相似主题
     *
     * @param query
     * @param theme
     * @return
     */
    Page<GtdStrategyTheme> findLikeThemes(Page<GtdStrategyTheme> query, String theme);


}